﻿using LP;

public sealed class GlobleModule : AbsModule
{
    public override void OnInit()
    {
        base.OnInit();
        InitGL();
    }

    public override void RegMgrs()
    {
        RegMgr<GameConfigMgr>();
        RegMgr<CancleTokenMgr>();
        RegMgr<CoroutineMgr>();
        RegMgr<TimeMgr>();
        RegMgr<GameSettingMgr>();
        RegMgr<WebNetMgr>();
        RegMgr<ResMgr>();
        RegMgr<SceneMgr>();
        RegMgr<AudioMgr>();
        RegMgr<ModelMgr>();
        RegMgr<UIMgr>();
        RegMgr<WindowMgr>();
    }

    public void InitGL()
    {
        Global.GameConfigMgrIns = RetrieveMgr<GameConfigMgr>();
        Global.CancleTokenMgrIns = RetrieveMgr<CancleTokenMgr>();
        Global.CoroutineMgrIns = RetrieveMgr<CoroutineMgr>();
        Global.TimeMgrIns = RetrieveMgr<TimeMgr>();
        Global.GameSettingMgrIns = RetrieveMgr<GameSettingMgr>();
        Global.NetMgrIns = RetrieveMgr<WebNetMgr>();
        Global.ResMgrIns = RetrieveMgr<ResMgr>();
        Global.AudioMgrIns = RetrieveMgr<AudioMgr>();
        Global.WindowMgrIns = RetrieveMgr<WindowMgr>();
        Global.ModelMgrIns = RetrieveMgr<ModelMgr>();
        Global.CancleTokenMgrIns.AttachCancleTokener(Global.CoroutineMgrIns);
        Global.CancleTokenMgrIns.AttachCancleTokener(Global.SceneEventHandler);
        Global.CancleTokenMgrIns.AttachCancleTokener(Global.UIEventHandler);
        Global.CancleTokenMgrIns.AttachCancleTokener(Global.SysEventHandler);
        Global.CancleTokenMgrIns.AttachCancleTokener(Global.NetEventHandler);
    }
}